# !/usr/bin/env python
# -*- coding: utf-8 -*-

# 多进程还有一种数据传递方式叫管道原理和 Queue相同。Pipe可以在进程之间创建一条管道，并返回元组（conn1,conn2）
# 其中conn1，conn2表示管道两端的连接对象，强调一点：必须在产生Process对象之前产生管道。
from multiprocessing import Process, Pipe

import time


# 子进程执行方法
def f(pipe_conn):
    time.sleep(1)
    pipe_conn.send("hello")
    print("parent:", pipe_conn.recv())
    pipe_conn.close()


if __name__ == "__main__":
    parent_conn, child_conn = Pipe()  # 创建管道两端

    p = Process(target=f, args=(child_conn,))  # 创建子进程

    p.start()

    print("child:", parent_conn.recv())

    parent_conn.send("kitty")
